# US SNAP Retailer Leads Scraper - Grocery & C-Stores (`scrapesage/snap-retailer-leads-scraper`) Actor

Scrape every US SNAP/EBT-authorized retailer from official USDA FNS data: store name, full address, county, geo & store type (convenience, grocery, supermarket, super store, specialty, farmers market) + lead score. Filter by state, store type & size. Food-retail B2B leads + monitoring.

- **URL**: https://apify.com/scrapesage/snap-retailer-leads-scraper.md
- **Developed by:** [Scrape Sage](https://apify.com/scrapesage) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 snap retailer records

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## US SNAP Retailer Leads Scraper — Grocery, Convenience & Food-Retail B2B Data

Extract **every US store authorized to accept SNAP / EBT benefits** straight from the official **[USDA FNS SNAP Retailer Location data](https://www.fns.usda.gov/snap/retailer-locator)** — the federal list of **~255,000 active SNAP retailers**. Every store comes back as a ready-to-use **B2B lead**: store name, full street address, **county**, ZIP, **latitude/longitude**, a normalized **store type** (convenience store, grocery store, supermarket, super store, specialty store, farmers market, restaurant meals program), **size tier**, nutrition-incentive-program flag, grantee and a derived **lead score**.

No login, no cookies, no browser, **no API key** — fast, reliable extraction from the USDA FNS ArcGIS feature service.

### Why this SNAP retailer scraper?

Independent grocers and convenience stores are one of the largest, hardest-to-list buyer pools in the country — and generic Google-Maps scrapers miss most of them or can't tell a supermarket from a corner store. This actor reads the official USDA regulatory dataset directly and ships the **richest food-retail list in the category**: every authorized store, classified by type and size, with exact address, county and coordinates, in one clean table.

| Data | Maps / generic scrapers | This actor |
|---|---|---|
| Store name, full address, county, ZIP | partial | ✅ |
| **Latitude / longitude** (from the federal record) | sometimes | ✅ |
| **Normalized store type** (convenience / grocery / supermarket / super store / specialty / farmers market) | ❌ | ✅ 8 types |
| **Store size tier** (large / medium / small / restaurant) | ❌ | ✅ |
| SNAP / EBT authorized (verified) | ❌ | ✅ every row |
| Nutrition-incentive program (GusNIP / Double Up) | ❌ | ✅ |
| Grantee / direct-marketing operator | ❌ | ✅ |
| Derived **lead score + lead signals** | ❌ | ✅ |
| Only-new / changed **monitoring mode** | ❌ | ✅ |
| Whole-country coverage in one run | ❌ | ✅ 50 states + DC + GU + VI |

### Who buys SNAP-retailer data?

- **C-store & grocery distributors / wholesalers** — DSD and route-sales teams target convenience stores and independent grocers by store type, city and county.
- **POS, payments, ATM, lottery & EBT processors** — every authorized store runs payments; new SNAP authorizations are in-market for terminals and merchant services.
- **Small-business lenders & merchant cash advance** — convenience stores and independent grocers are a core funding niche; address + store type qualifies the list.
- **Business insurance & franchise development** — segment retail risk and recruit independent operators by format and geography.
- **Food & beverage brands and brokers (CPG)** — find every retail door in a territory to plan placement, sampling and DSD.
- **Refrigeration, shelving, signage, security & store-build vendors** — every store is a recurring equipment account.
- **Nutrition-incentive & local-food tech** — target farmers markets and incentive-program stores (GusNIP / Double Up Food Bucks).
- **Market & competitive intelligence** — map retail density by store type and watch newly authorized stores each month.

### How to use

1. [Sign up for Apify](https://console.apify.com/sign-up) — the free plan is enough to try this actor.
2. Open the **US SNAP Retailer Leads Scraper**, set one or more **states** (or leave empty for the whole country), optionally pick **store types** or a **size** filter, and choose your limit.
3. Click **Start** and watch retailer records stream into the dataset table.
4. **Export** as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the [Apify API](https://docs.apify.com/api/v2).

### Input

```json
{
    "states": ["CA", "TX"],
    "storeTypes": ["convenienceStore", "supermarket", "groceryStore"],
    "sortBy": "leadScore",
    "maxResults": 1000
}
```

- **states** — two-letter state codes (e.g. `["CA","TX"]`). Leave empty to scrape all 50 states + DC + Guam + U.S. Virgin Islands.
- **storeTypes** — keep only `convenienceStore`, `groceryStore`, `supermarket`, `superStore`, `specialtyStore`, `farmersMarket`, `restaurantMealsProgram`, `other`.
- **storeSizeTiers** — `large` (super stores & supermarkets), `medium` (grocery stores), `small` (convenience, specialty & farmers markets), `restaurant`.
- **cities / counties / zipCodes / nameQuery** — location and name filters (e.g. `nameQuery: "dollar general"`).
- **recordIds** — look up specific stores by USDA Record ID.
- **incentiveProgramsOnly** — only stores enrolled in a SNAP nutrition-incentive program (GusNIP / Double Up).
- **withGeoOnly** — only stores that have latitude/longitude.
- **minLeadScore / maxResults / maxResultsPerState / sortBy / deduplicateResults** — output controls. Sort by `leadScore` (default), `name`, `state`, or `source`.
- **monitorMode / monitorKey** — only return stores that are new or changed since the last run.
- **proxyConfiguration** — optional; the USDA FNS service needs no proxy, so leave it off for the fastest queries.

### Output

By default you get **one clean, dense table of retailers** — every column applies to every row. A retailer record:

```json
{
    "recordType": "snapRetailer",
    "recordId": 1699256,
    "storeName": "Maverik Group LLC 806",
    "storeType": "Convenience Store",
    "storeCategory": "convenienceStore",
    "storeCategoryLabel": "Convenience Store",
    "storeSizeTier": "small",
    "isConvenienceStore": true,
    "street": "8900 Hwy 374",
    "city": "Green River",
    "state": "WY",
    "stateName": "Wyoming",
    "zip": "82935",
    "county": "Sweetwater",
    "fullAddress": "8900 Hwy 374, Green River, WY, 82935",
    "latitude": 41.528362,
    "longitude": -109.46607,
    "hasGeo": true,
    "incentiveProgram": null,
    "participatesInIncentiveProgram": false,
    "snapAuthorized": true,
    "acceptsEbt": true,
    "leadScore": 83,
    "leadSignals": ["Convenience Store", "Convenience store (high-frequency buyer of POS, ATM, distribution & financing)"],
    "scrapedAt": "2026-06-21T00:00:00.000Z"
}
```

Every record also carries the raw USDA source attributes under `sourceFields` unless you turn off **includeRawFields**. Switch the dataset view to **Retailers**, **Retail leads**, or **Location & geo** for a focused table.

#### What to expect (field coverage)

The SNAP retailer file is a regulatory dataset, so the core firmographic fields are near-complete.

| Field group | Coverage |
|---|---|
| Store name, street address, city, state, ZIP, store type | ✅ ~100% |
| County, latitude/longitude | ✅ high |
| Size tier (derived from store type) | ✅ ~100% |
| Incentive program / grantee | present where the store participates |
| Phone / email | ❌ not published in this federal dataset |

The USDA SNAP retailer file does **not** include phone or email — we never fabricate contact data. It is the authoritative store-and-location list; append contacts downstream or pair it with one of the contact-bearing scrapers below. A blank field means USDA doesn't publish that value, not that scraping failed.

### Automate & schedule

Run this actor on autopilot and pull results into your own stack:

- **[Apify API](https://docs.apify.com/api/v2)** — start runs, fetch datasets, and manage schedules over REST.
- **[apify-client for JavaScript](https://docs.apify.com/api/client/js/)** and **[apify-client for Python](https://docs.apify.com/api/client/python/)** — official SDKs.
- **[Schedules](https://docs.apify.com/platform/schedules)** — run it monthly with **monitoring mode** to capture newly SNAP-authorized stores as fresh leads.
- **[Webhooks](https://docs.apify.com/platform/integrations/webhooks)** — trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.

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

const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });

const run = await client.actor('scrapesage/snap-retailer-leads-scraper').call({
    states: ['CA'],
    storeTypes: ['convenienceStore'],
    sortBy: 'leadScore',
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} retailers`);
```

### Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

- **[Make](https://docs.apify.com/platform/integrations/make)** — multi-step automation scenarios.
- **[Zapier](https://docs.apify.com/platform/integrations/zapier)** — push new retail leads straight into your CRM.
- **[Slack](https://docs.apify.com/platform/integrations/slack)** — get notified when a monitored state gets a new or changed store.
- **[Google Drive / Sheets](https://docs.apify.com/platform/integrations/drive)** — auto-export every run to a spreadsheet.
- **[Airbyte](https://docs.apify.com/platform/integrations/airbyte)** — pipe results into your data warehouse.
- **[GitHub](https://docs.apify.com/platform/integrations/github)** — trigger runs from commits or releases.

### Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework through the **[Apify MCP server](https://docs.apify.com/platform/integrations/mcp)** — ask your assistant to "find every convenience store in Texas with a lead score over 80 and coordinates" and let it run the scraper for you.

### More scrapers from scrapesage

Build a complete **food-retail, government-data & B2B lead-gen stack**:

- **[US Business Formation Scraper](https://apify.com/scrapesage/us-business-formation-scraper)** — newly-registered companies and LLCs as fresh leads.
- **[Texas Business Leads Scraper](https://apify.com/scrapesage/texas-business-leads-scraper)** — active Texas businesses by NAICS industry + new-business feed.
- **[FSIS Establishment Scraper](https://apify.com/scrapesage/fsis-establishment-scraper)** — USDA meat, poultry & egg plants (food manufacturers) with contacts.
- **[US Restaurant Inspection Scraper](https://apify.com/scrapesage/us-restaurant-inspection-scraper)** — restaurants with health-inspection grades and new-opening signals.
- **[US Organic Operations Scraper](https://apify.com/scrapesage/us-organic-operations-scraper)** — USDA-certified organic farms and food businesses with contacts.
- **[ImportYeti Scraper](https://apify.com/scrapesage/importyeti-scraper)** — US import records, suppliers and B2B leads.
- **[SBA Loan Leads Scraper](https://apify.com/scrapesage/sba-loan-leads-scraper)** — 7(a) & 504 financed small businesses (financing-intent leads).
- **[PPP Loan Data Scraper](https://apify.com/scrapesage/ppp-loan-data-scraper)** — small-business firmographics and lender data.
- **[US Property Records Scraper](https://apify.com/scrapesage/us-property-records-scraper)** — parcels, owners and absentee-owner leads.
- **[FMCSA Trucking Scraper](https://apify.com/scrapesage/fmcsa-trucking-scraper)** — motor carriers and trucking-company leads.

### Tips

- **Start with a state + store type** (e.g. `TX` + `convenienceStore`) for a fast, focused list, then layer on city, county or ZIP filters.
- **Big retail accounts**: set `storeSizeTiers: ["large"]` to target supermarkets and super stores — the biggest CPG, distribution and equipment buyers.
- **Independent-operator outreach**: filter to `convenienceStore` and `groceryStore` — the prime pool for POS, payments, ATM, lottery and small-business financing.
- **Local-food & incentive tech**: set `incentiveProgramsOnly: true` or `storeTypes: ["farmersMarket"]` to find direct-marketing farmers and GusNIP/Double Up stores.
- **Recurring monitoring**: combine [Schedules](https://docs.apify.com/platform/schedules) with `monitorMode` to capture only stores added or changed since the last run — perfect for catching newly authorized stores each month.

### FAQ

**Where does the data come from?** From the U.S. **USDA Food and Nutrition Service (FNS) "SNAP Retailer Location data"**, the official national list of stores authorized to accept Supplemental Nutrition Assistance Program (SNAP / EBT) benefits, published on [ArcGIS](https://www.fns.usda.gov/snap/retailer-locator).

**Does it need an API key or login?** No. The USDA FNS feature service is queried directly — no key, no login, no browser.

**How fresh is it?** USDA refreshes the SNAP retailer feature service regularly as stores are authorized and removed. Run on a [Schedule](https://docs.apify.com/platform/schedules) with monitoring mode to capture newly authorized stores as they post.

**Does it include phone numbers or emails?** No — this federal dataset is a store-and-location file. It carries store name, type, full address and coordinates, but not phone or email. We never fabricate contact data.

**What store types are covered?** Convenience stores, grocery stores, supermarkets, super stores / supercenters, specialty food stores, farmers markets / direct-marketing farmers, Restaurant Meals Program locations, and other authorized retailers.

**Can I export to Google Sheets, CSV, or Excel?** Yes — one click in the dataset view, or automatically on every run via the [Google Drive integration](https://docs.apify.com/platform/integrations/drive).

**A field is empty — why?** A store only carries data USDA publishes for it (e.g. no incentive program if it doesn't participate). Blank means USDA has no value, never that scraping failed.

**Is scraping this data legal?** This actor collects publicly available U.S. government data. You're responsible for using it in compliance with applicable laws and USDA's terms.

### Need help?

Open an issue on the actor's **Issues** tab, or visit the [Apify help center](https://help.apify.com/). Feature requests are welcome — this actor is actively maintained.

# Actor input Schema

## `states` (type: `array`):

Two-letter state codes to scrape (e.g. \["CA","TX"]). Leave empty to scrape all 50 states + DC + Guam + U.S. Virgin Islands (the full SNAP coverage area).

## `storeTypes` (type: `array`):

Keep only retailers of these store types. Allowed values: convenienceStore, groceryStore, supermarket, superStore, specialtyStore, farmersMarket, restaurantMealsProgram, other. Leave empty for all.

## `storeSizeTiers` (type: `array`):

Keep only retailers in these size tiers. Allowed values: large (super stores & supermarkets), medium (grocery stores), small (convenience, specialty & farmers markets), restaurant (Restaurant Meals Program). Leave empty for all.

## `cities` (type: `array`):

Keep only retailers in these cities (case-insensitive, exact match on the store's city). Optional.

## `counties` (type: `array`):

Keep only retailers in these counties (case-insensitive, e.g. "Los Angeles"). Optional.

## `zipCodes` (type: `array`):

Keep only retailers whose ZIP starts with any of these values (full ZIP or prefix, e.g. "900" or "90210"). Optional.

## `nameQuery` (type: `string`):

Keep only retailers whose name contains this text (case-insensitive), e.g. "dollar general" or "7-eleven". Optional.

## `recordIds` (type: `array`):

Look up specific retailers by USDA Record ID. When set, the state filter is ignored and only these retailers are returned.

## `incentiveProgramsOnly` (type: `boolean`):

Keep only retailers enrolled in a SNAP nutrition-incentive program (e.g. GusNIP / Double Up Food Bucks) — engaged, grant-funded stores and direct-marketing farmers.

## `withGeoOnly` (type: `boolean`):

Keep only retailers that have latitude/longitude coordinates (useful for mapping and territory routing).

## `minLeadScore` (type: `integer`):

Keep only retailers with a lead score at or above this value (0-100).

## `sortBy` (type: `string`):

Order of the output.

## `maxResults` (type: `integer`):

Maximum number of retailer records to return across all states.

## `maxResultsPerState` (type: `integer`):

Optional cap on the number of retailers returned from each state (useful for balanced multi-state pulls). Leave empty for no per-state cap.

## `deduplicateResults` (type: `boolean`):

Drop duplicate retailers that share the same USDA Record ID.

## `includeRawFields` (type: `boolean`):

Attach the raw USDA FNS source attributes under sourceFields on each record.

## `monitorMode` (type: `boolean`):

Only return retailers that are new or whose name, address, store type or incentive program changed since the last run with the same monitor key. Ideal on a Schedule to capture newly SNAP-authorized stores.

## `monitorKey` (type: `string`):

Namespace for monitoring mode so independent monitors don't collide. Use a distinct key per saved configuration.

## `proxyConfiguration` (type: `object`):

Optional. The USDA FNS ArcGIS service needs no proxy, so leave this off for the fastest queries.

## Actor input object example

```json
{
  "states": [
    "WY"
  ],
  "incentiveProgramsOnly": false,
  "withGeoOnly": false,
  "sortBy": "leadScore",
  "maxResults": 1000,
  "deduplicateResults": true,
  "includeRawFields": true,
  "monitorMode": false,
  "monitorKey": "default",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

All scraped SNAP-authorized retailer records in the default dataset, each with firmographics, store type, size tier, incentive program and a lead score.

# 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 = {
    "states": [
        "WY"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapesage/snap-retailer-leads-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 = { "states": ["WY"] }

# Run the Actor and wait for it to finish
run = client.actor("scrapesage/snap-retailer-leads-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 '{
  "states": [
    "WY"
  ]
}' |
apify call scrapesage/snap-retailer-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapesage/snap-retailer-leads-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/RkdPtRfW5ROTGxu0o/builds/2HD1dJeANqefLG6re/openapi.json
