# Sephora Store Locator & Stock Checker — Find Nearby Stores (`sian.agency/sephora-store-locator-scraper`) Actor

Sephora store locator + in-stock checker. Find every Sephora store near any latitude/longitude in the US, or check whether a specific SKU is in stock at nearby stores. 38 fields per store — address, hours, phone, BOPIS / curbside / same-day delivery flags. JSON / CSV export. No Sephora API key.

- **URL**: https://apify.com/sian.agency/sephora-store-locator-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 8 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 returned store rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Sephora Store Locator & Stock Checker

[![Store](https://img.shields.io/badge/Store-Apify-blueviolet)](https://apify.com/sian.agency/sephora-store-locator-scraper?fpr=sian)
[![Store-Catalog](https://img.shields.io/badge/Store-Catalog-pink)](https://apify.com/sian.agency/best-sephora-product-catalog-extractor?fpr=sian)
[![Store-Reviews](https://img.shields.io/badge/Store-Reviews-pink)](https://apify.com/sian.agency/best-sephora-product-information-extractor?fpr=sian)
[![Store-More-by-SIÁN](https://img.shields.io/badge/Store-More%20by%20SI%C3%81N-pink)](https://apify.com/sian.agency?fpr=sian)

**Find every Sephora store near any address in the US — and check which of them have a specific product in stock.** Powered by sephora.com's own store-locator and inventory feeds.

### 🔎 What is the Sephora Store Locator & Stock Checker — and when should you use it?

The **Sephora Store Locator & Stock Checker** turns Sephora's own US store-locator and in-store stock feeds into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

**Use it when you need:** every Sephora store near a coordinate, with store name, full address, phone, opening hours for each day of the week, distance in miles, mall name, timezone, and district and regional name. Each store lists the services offered and its BOPIS, curbside, online-reservation, Instacart, same-day-delivery and ship-from-store flags. A second mode answers the stock question instead: which of those nearby stores currently carry a given Sephora SKU.

**Use something else when:** you want Sephora product data rather than store locations. Use [Sephora Product Catalog Scraper](https://apify.com/sian.agency/best-sephora-product-catalog-extractor?fpr=sian) for browsing the catalog by brand, category or keyword, which is also where you find the SKU IDs this actor checks stock for. Use [Sephora Product Details & Reviews Scraper](https://apify.com/sian.agency/best-sephora-product-information-extractor?fpr=sian) for one product's full detail and its customer reviews. Coverage is US stores only, and one SKU per run.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/sephora-store-locator-scraper

**Your agent can pay for its own runs.** This Actor is eligible for [agentic payments](https://docs.apify.com/platform/actors/publishing/monetize), so an agent can discover it, run it and settle the bill over [x402](https://www.x402.org/) (USDC on Base) or [Skyfire](https://www.skyfire.xyz/) — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

```text
I want Sephora store locations and in-store stock in the US using the Apify Actor `sian.agency/sephora-store-locator-scraper`.

Use it when I need: every Sephora store near a coordinate, with store name, full address, phone, opening hours for each day of the week, distance in miles, mall name, timezone, and district and regional name. Each store lists the services offered and its BOPIS, curbside, online-reservation, Instacart, same-day-delivery and ship-from-store flags. A second mode answers the stock question instead: which of those nearby stores currently carry a given Sephora SKU.

Don't use it when: you want Sephora product data rather than store locations — use best-sephora-product-catalog-extractor or best-sephora-product-information-extractor instead.

How to call it: pick one `action` — `storeSearch` (a `latitude` and `longitude`, plus an optional `radius` in miles from 1 to 500, default 25) or `productAvailability` (the same coordinates plus a Sephora `skuId`).

Start with this input:
{
  "action": "storeSearch",
  "latitude": "40.7549",
  "longitude": "-73.9840",
  "radius": "25"
}

Ask me which city or address to search around, so it can be converted to a latitude and longitude, and whether a SKU stock check is also needed, then run the Actor and summarise the results as a table.
```

**Things you can ask your agent for:**

- *Find every Sephora within 50 miles of Miami Beach and list which ones offer curbside pickup.*
- *Check which Sephora stores near Chicago have SKU 2495505 in stock today.*
- *Build a table of Sephora store hours and phone numbers across the Los Angeles metro.*

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at [apify.com/sian.agency/sephora-store-locator-scraper.md](https://apify.com/sian.agency/sephora-store-locator-scraper.md).

### What it does

- **Find stores near coordinates** — pass a latitude + longitude (and an optional radius in miles) and get back every Sephora storefront in range with full address, opening hours, phone, services, and same-day-delivery flags.
- **Check SKU stock near coordinates** — pass the same coordinates plus a Sephora SKU ID and see which of those stores currently carry it.

No proxies, no setup, no Sephora API key required.

### Why use it

- **Store-finder for your customers** — build a "nearest store" widget on your own ecommerce site without scraping the Sephora UI yourself.
- **Lead routing** — match a buyer's ZIP to the closest Sephora storefront for fulfillment hand-off.
- **Local inventory monitoring** — track whether a specific SKU is stocked in your home market, weekly or daily, with scheduled Apify runs.
- **Trade-area research** — pull every Sephora store in a state to model market coverage versus competitors (Ulta, Bluemercury).
- **Beauty influencer logistics** — figure out which stores within driving distance have the new launch in stock, before it sells out.

### Quick start

1. Choose **Find stores** or **Check SKU stock**.
2. Paste a **latitude** and **longitude** (use Google Maps → right-click → "What's here?" to get them).
3. (Optional) Adjust the **radius** in miles. Default 25.
4. (Stock mode only) Paste a **SKU ID**. Find SKUs on sephora.com or via our [Sephora Catalog Scraper](https://apify.com/sian.agency/best-sephora-product-catalog-extractor?fpr=sian).
5. Hit **Save & Start**.

### Input

| Field | Type | Required | Description |
|---|---|---|---|
| `action` | enum | ✅ | `storeSearch` or `productAvailability` |
| `latitude` | string | ✅ | Decimal latitude (-90 to 90), e.g. `40.7549` |
| `longitude` | string | ✅ | Decimal longitude (-180 to 180), e.g. `-73.9840` |
| `radius` | string | optional | Search radius in miles, 1–500 (default 25) |
| `skuId` | string | required for stock mode | Sephora SKU ID, e.g. `2495505` |

#### Example coordinates

| City | Latitude | Longitude |
|---|---|---|
| New York Midtown | `40.7549` | `-73.9840` |
| Beverly Hills | `34.0736` | `-118.4004` |
| Miami Beach | `25.7907` | `-80.1300` |
| Chicago Loop | `41.8781` | `-87.6298` |
| Houston Galleria | `29.7396` | `-95.4612` |
| San Francisco Union Square | `37.7879` | `-122.4075` |

### Output

Each result row contains **38 fields**:

**Identity:** `storeId`, `displayName`, `storeType`, `startDate`, `endDate`, `sourceUrl`
**Geo:** `latitude`, `longitude`, `distanceMiles`
**Address:** `address1`, `address2`, `city`, `state`, `postalCode`, `country`, `phone`, `mallName`, `timezone`, `districtName`, `regionalName`
**Hours:** `mondayHours` … `sundayHours`
**Services:** `isBopisable`, `isCurbsideEnabled`, `isOnlineReservationEnabled`, `instacartShoppingEnabled`, `samedayDeliveryEnabled`, `shipFromStoreEnabled`, `servicesOffered[]`
**Query echo:** `queryLatitude`, `queryLongitude`, `queryRadiusMiles`, `querySkuId`
**Meta:** `itemType`, `processedAt`

Plus an HTML summary report saved to the Key-Value Store (`report.html`) with a top-15 store table and a coverage breakdown by state.

### Pricing

| Plan | Stores per run | Best for |
|---|---|---|
| FREE | 5 | Testing, demos |
| PAID | Unlimited | Production, scheduling, multi-region surveys |

Event-based pricing — pay only for the rows you receive. Free runs deduct from your Apify credits.

### FAQ

**Q. Does this cover Sephora outside the US?**
Not yet. This actor currently uses the US store endpoint. Sephora EU (FR, DE, IT, ES, PL, RO, GR, CZ, PT, TR, DK, SE, CH, HR) has separate endpoints that we'll add in a follow-up.

**Q. Why latitude/longitude instead of a ZIP?**
The upstream endpoint accepts coordinates, not ZIP codes. You can convert a ZIP to coordinates for free with any geocoder (Google, OpenStreetMap, etc.). Future versions may add a ZIP shortcut.

**Q. How fresh is the stock data?**
Pulled live each run from the same feed sephora.com uses on its own product pages. Schedule a daily run if you need rolling history.

**Q. Can I check multiple SKUs in one run?**
Not currently — one SKU per run. Use multiple scheduled runs or fan out via Apify task automation. We may add bulk SKU mode based on demand.

**Q. Why does the SKU stock check sometimes return no results?**
Either no Sephora store within the radius carries that SKU, or the SKU has gone out of stock nationwide. Widen the radius first.

### Troubleshooting

- **"latitude and longitude are required"** — both fields must be filled with decimal values.
- **"action='productAvailability' requires a skuId"** — switch to **Find stores** mode if you don't have a SKU yet.
- **Empty results in a major city** — the upstream may be temporarily slow. Re-run the actor.

### Related actors by SIÁN

- [Sephora Product Catalog Scraper](https://apify.com/sian.agency/best-sephora-product-catalog-extractor?fpr=sian) — pull catalogs by brand, category, or keyword. Use this to find the SKUs you want to track.
- [Sephora Product Details & Reviews Scraper](https://apify.com/sian.agency/best-sephora-product-information-extractor?fpr=sian) — full product specs, ingredients, and reviews with demographic breakdowns.

[More actors by SIÁN →](https://apify.com/sian.agency?fpr=sian)

### Legal

This is an independent tool built by SIÁN Agency. It is not affiliated with, endorsed by, or sponsored by Sephora USA, Inc., Sephora SA, or LVMH Moët Hennessy Louis Vuitton SE. "Sephora" is a trademark of its respective owners. We use the name strictly under nominative-fair-use to describe what this tool does.

Use this actor only for purposes that comply with sephora.com's Terms of Service and applicable law.

***

<sub>Keywords: sephora store locator, sephora near me, sephora stock check, sephora inventory, sephora BOPIS, sephora curbside pickup, sephora same day delivery, sephora store hours, sephora store finder, sephora API alternative, beauty store locator, retail store finder, store availability checker, in-store stock checker, local inventory scraper</sub>

# Actor input Schema

## `action` (type: `string`):

**Find stores** lists Sephora stores near a coordinate. **Check stock** lists nearby stores that currently carry a specific SKU.

## `latitude` (type: `string`):

Latitude of the search center, e.g. New York Midtown = `40.7549`, Beverly Hills = `34.0736`, Miami Beach = `25.7907`. Use Google Maps right-click → 'What's here?' to get coordinates.

## `longitude` (type: `string`):

Longitude of the search center, e.g. New York Midtown = `-73.9840`, Beverly Hills = `-118.4004`, Miami Beach = `-80.1300`.

## `radius` (type: `string`):

Search radius in miles. Range 1–500. Default 25.

## `skuId` (type: `string`):

Sephora SKU ID to check stock for. **Required when action = 'Check SKU stock'**, ignored otherwise. Find SKU IDs from sephora.com product pages or our [Sephora Catalog Scraper](https://apify.com/sian.agency/best-sephora-product-catalog-extractor?fpr=sian). Example: `2495505` (Rare Beauty Soft Pinch Liquid Blush).

## Actor input object example

```json
{
  "action": "storeSearch",
  "latitude": "40.7549",
  "longitude": "-73.9840",
  "radius": "25"
}
```

# Actor output Schema

## `results` (type: `string`):

Complete store list with address, hours, phone, and per-store services.

## `htmlReport` (type: `string`):

Visual summary with closest store, services coverage, and breakdown by state.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/sephora-store-locator-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/sephora-store-locator-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call sian.agency/sephora-store-locator-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sian.agency/sephora-store-locator-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/caror8d1SzOewGZSa/builds/hm1qKiw5fQep2AjCN/openapi.json
