# Kroger Store Details Scraper - Address & Hours (`datacach/kroger-store-details-scraper`) Actor

Extracts Kroger store details from store page URLs — address, phone, GPS coordinates, timezone, open status, fulfillment modalities, and hours. Pairs with the Kroger Store Links Actor.

- **URL**: https://apify.com/datacach/kroger-store-details-scraper.md
- **Developed by:** [DataCach](https://apify.com/datacach) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.50 / 1,000 stores

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use 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

## Kroger Store Details Scraper

**Extract full store details for any Kroger-family store** — Kroger, Ralphs, Fred Meyer, King Soopers, Smith's, QFC, Harris Teeter, and more — straight from the same public API that powers the [Kroger store locator](https://www.kroger.com/stores/search). Feed it store URLs and get back structured address, phone, GPS, hours, and fulfillment data in seconds. No coding, CSS selectors, or browser automation required.

### What is Kroger Store Details Scraper?

Kroger Store Details Scraper is an **Apify Actor** that turns a list of Kroger store page URLs into a clean, structured **JSON dataset** of everything the store locator API knows about each location: store ID, banner/chain name, full **address**, **phone number**, **GPS coordinates**, **timezone**, live open/closed status, fulfillment modalities (pickup, delivery, in-store), e-commerce capabilities, department listing, and raw **opening hours**.

It's built to pair with the **[Kroger Store Locator Scraper - All Store URLs](https://apify.com/datacach/kroger-store-locator-scraper)** Actor: run that one first to discover every store URL for a city, state, or ZIP code, then feed the URLs into this Actor to get full store-level data for each one.

### What can Kroger Store Details Scraper do?

- 🏬 **Extract full store metadata** — address, phone, GPS coordinates, timezone, and legal/vanity names for any Kroger-family store
- 🕒 **Pull opening hours and live status** — including whether the store is currently open and department-level hours (e.g. pharmacy)
- 🚚 **Report fulfillment modalities** — pickup, delivery, in-store, and e-commerce capability flags (hot, ambient, refrigerated, frozen)
- 🏷️ **Resolve the correct banner/chain name** — Kroger, Ralphs, Fred Meyer, King Soopers, City Market, Dillons, Smith's, Baker's, Gerbes, Harris Teeter, Mariano's, Metro Market, Pick 'n Save, QFC, Food 4 Less, Foods Co, JayC — from a single unified input
- 🗂️ **List store departments** — pharmacy, deli, bakery, gas station, Starbucks, and dozens more, with their own hours and phone numbers where available
- 📤 **Export to JSON, CSV, Excel, HTML, or XML** — download directly from the Apify Console or pull via API
- ⏱️ **Schedule recurring runs** — keep store data fresh with Apify's built-in [Scheduler](https://docs.apify.com/platform/schedules)
- 🔌 **Automate with the Apify API and integrations** — trigger runs and pull results via API, or connect to Zapier, Make, and other tools
- 📊 **Monitor every run** — logs, stats, and alerts through the Apify Console

### What data does Kroger Store Details Scraper extract?

| Field | Description |
|---|---|
| `name` | Human-readable chain/banner name (e.g. Kroger, Ralphs, Fred Meyer) |
| `banner` | Raw banner slug as returned by the API (e.g. `kroger`, `ralphs`) |
| `locationId` | Unique store ID (division + store number, e.g. `01400375`) |
| `storeNumber` / `divisionNumber` | Store number and the Kroger division/region it belongs to |
| `vanityName` / `legalName` | Store's display nickname and the legal entity operating it |
| `street`, `city`, `state`, `zipcode` | Full store address |
| `phone` | Store phone number |
| `latitude`, `longitude` | GPS coordinates |
| `timezone` | IANA timezone for interpreting store hours |
| `isOpen`, `openText` | Live open/closed status and human-readable status text |
| `allowedModalities` | Fulfillment types the store supports (e.g. `PICKUP`, `IN_STORE`) |
| `capabilities` | E-commerce fulfillment capabilities (hot/ambient/refrigerated/frozen) with enabled flags |
| `departments` | Full department list (pharmacy, deli, bakery, gas station, etc.) with their own hours/phone where applicable |
| `hours_raw` | Raw opening-hours object as returned by the API |
| `extraction_datetime` / `extraction_date` | UTC timestamp of when the record was extracted |

### How do I scrape Kroger store details?

1. (Optional) Run the **[Kroger Store Locator Scraper - All Store URLs](https://apify.com/datacach/kroger-store-locator-scraper)** Actor to get a list of store page URLs for your target city, state, or ZIP code.
2. Open Kroger Store Details Scraper's **Input** tab and paste the URLs into **Store URLs**.
3. Adjust **Max concurrent stores** if you want faster or more conservative throughput (default: 5).
4. Click **Start**.
5. When the run finishes, open the **Output** tab and download your data as JSON, CSV, or Excel — or pull it programmatically via the [Apify API](https://docs.apify.com/api/v2).

<!-- TODO: embed a demo video or GIF walking through a run, e.g. https://www.youtube.com/watch?v=VIDEO_ID -->

### Input

Kroger Store Details Scraper takes just two inputs:

- **Store URLs** (`links`, required) — a list of Kroger store page URLs, e.g. `https://www.kroger.com/stores/grocery/al/auburn/corner-village/011/00260`. Typically the output of the Kroger Store Locator Scraper. Free-plan accounts process only the first 5 links per run.
- **Max concurrent stores** (`maxConcurrency`, optional, default `5`) — how many stores to fetch in parallel. Higher values finish faster but increase the chance of hitting anti-bot rate limits.

![Kroger Store Details Scraper input example](https://raw.githubusercontent.com/BenjaminFloresV/public-datacach-apify-actors-media/main/kroger-store-details-scraper/kroger-store-details-scraper-input-example.png)

Full technical details are always available in the **Input** tab and its tooltips.

### Output example

```json
{
  "url": "https://www.kroger.com/stores/grocery/al/auburn/corner-village/011/00260",
  "name": "Kroger",
  "banner": "kroger",
  "locationId": "01100260",
  "storeNumber": "00260",
  "divisionNumber": "011",
  "vanityName": "Corner Village",
  "legalName": "The Kroger Co.",
  "storeType": "C",
  "street": "300 N Dean Rd",
  "city": "Auburn",
  "state": "AL",
  "zipcode": "36830",
  "phone": "3348211325",
  "latitude": 32.6105645,
  "longitude": -85.463195,
  "timezone": "America/Chicago",
  "isOpen": true,
  "openText": "Open Until 11 PM",
  "allowedModalities": ["PICKUP", "IN_STORE"],
  "capabilities": [
    { "type": "ECOM_HOT", "startDate": "2019-08-15", "enabled": true }
  ],
  "isDivestedStore": false,
  "isCrossBanner": false,
  "departments": [
    { "code": "09", "vanityName": "Pharmacy", "offSite": false, "popular": false }
  ],
  "hours_raw": {
    "open24Hours": false,
    "prettyHours": [
      { "displayName": "Sun - Sat", "displayHours": "6:00 AM - 11:00 PM", "isToday": true }
    ]
  },
  "extraction_datetime": "2026-07-22T23:43:44.334235+00:00",
  "extraction_date": "07-22-2026"
}
````

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### Use cases

- 📍 **Store locator apps** — power an in-app or on-site "find a Kroger near you" feature with fresh address, hours, and GPS data
- 🛒 **Grocery delivery & pickup platforms** — check which fulfillment modalities (pickup, delivery, in-store) a store supports before routing orders
- 📈 **Market research & competitive analysis** — map Kroger-family store density, banners, and department offerings across a region
- 🗃️ **Data enrichment** — attach verified store hours, timezone, and geolocation to an existing store database or CRM
- 🤖 **Automation pipelines** — feed store data into downstream tools via Zapier, Make, or the Apify API for alerts, dashboards, or reporting

### Kroger-related Actors you might like

| Actor | What it does |
|---|---|
| [Kroger Store Locator Scraper - All Store URLs](https://apify.com/datacach/kroger-store-locator-scraper) | Discovers every Kroger-family store URL for a city, state, or ZIP code — the ideal input source for this Actor |
| Kroger Store Details Scraper *(this Actor)* | Extracts full store details — address, hours, GPS, fulfillment — from store URLs |

### FAQ

#### Is it legal to scrape Kroger store data?

This Actor only collects **publicly available data** from the same anonymous API the Kroger website itself uses to power its store locator — no login, personal data, or private information is accessed. That said, scraping is subject to the target site's Terms of Service, and you're responsible for how you use the extracted data. Always review Kroger's ToS before large-scale or commercial use.

#### Which Kroger banners/chains does this Actor support?

Any store on a Kroger-family banner works, since they all share the same locator API: Kroger, Ralphs, Fred Meyer, King Soopers, City Market, Dillons, Smith's, Baker's, Gerbes, Harris Teeter, Mariano's, Metro Market, Pick 'n Save, QFC, Food 4 Less, Foods Co, and JayC Food Stores.

#### Do I need a Kroger API key?

No. This Actor calls the same public, unauthenticated API that the Kroger.com store locator page uses in the browser — no API key or account is required.

#### Can I run this on a schedule?

Yes. Use Apify's built-in [Scheduler](https://docs.apify.com/platform/schedules) to run this Actor daily, weekly, or on any cron interval, and pull fresh store data automatically via API or integrations.

#### What happens if a store URL fails or is blocked?

Failed or blocked links are skipped and logged; the run only fails if **no** link succeeds, so a handful of bad URLs won't stop the rest of your batch from completing.

#### Can I access the results via API?

Yes. Every Actor run and its dataset are accessible through the [Apify API](https://docs.apify.com/api/v2), so you can integrate store data directly into your own app, pipeline, or BI tool.

### Support

Found a bug or have a feature request? Open an issue on this Actor's **Issues** tab in Apify Console. Need a custom scraper or a modified version of this one? Reach out — custom development is available.

# Actor input Schema

## `links` (type: `array`):

Kroger store page URLs to extract metadata from, e.g. <code>https://www.kroger.com/stores/grocery/al/auburn/corner-village/011/00260</code>. Typically the output of the Kroger Store Links Actor. Free plan accounts process only the first 5 links.

## `maxConcurrency` (type: `integer`):

How many stores to fetch in parallel. Higher values finish faster but increase the chance of hitting anti-bot rate limits.

## Actor input object example

```json
{
  "links": [
    "https://www.kroger.com/stores/grocery/al/auburn/corner-village/011/00260"
  ],
  "maxConcurrency": 5
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

# 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 = {
    "links": [
        "https://www.kroger.com/stores/grocery/al/auburn/corner-village/011/00260"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("datacach/kroger-store-details-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 = { "links": ["https://www.kroger.com/stores/grocery/al/auburn/corner-village/011/00260"] }

# Run the Actor and wait for it to finish
run = client.actor("datacach/kroger-store-details-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "links": [
    "https://www.kroger.com/stores/grocery/al/auburn/corner-village/011/00260"
  ]
}' |
apify call datacach/kroger-store-details-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=datacach/kroger-store-details-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Kroger Store Details Scraper - Address & Hours",
        "description": "Extracts Kroger store details from store page URLs — address, phone, GPS coordinates, timezone, open status, fulfillment modalities, and hours. Pairs with the Kroger Store Links Actor.",
        "version": "0.0",
        "x-build-id": "TQrkme38tQNu6BgnV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/datacach~kroger-store-details-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-datacach-kroger-store-details-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/datacach~kroger-store-details-scraper/runs": {
            "post": {
                "operationId": "runs-sync-datacach-kroger-store-details-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/datacach~kroger-store-details-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-datacach-kroger-store-details-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "links"
                ],
                "properties": {
                    "links": {
                        "title": "Store URLs",
                        "type": "array",
                        "description": "Kroger store page URLs to extract metadata from, e.g. <code>https://www.kroger.com/stores/grocery/al/auburn/corner-village/011/00260</code>. Typically the output of the Kroger Store Links Actor. Free plan accounts process only the first 5 links.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxConcurrency": {
                        "title": "Max concurrent stores",
                        "minimum": 1,
                        "maximum": 20,
                        "type": "integer",
                        "description": "How many stores to fetch in parallel. Higher values finish faster but increase the chance of hitting anti-bot rate limits.",
                        "default": 5
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
