# USDA SNAP Retailer & Grocery Leads Scraper (`logiover/usda-snap-retailer-leads-scraper`) Actor

Export 260,000+ USDA-authorized SNAP retailers with business name, store type, full address, county and coordinates. Filter nationwide grocery and convenience-store leads for payments, distribution and retail intelligence.

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

## Pricing

from $1.50 / 1,000 results

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 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

## USDA SNAP Retailer & Grocery Leads Scraper

Export more than 260,000 USDA-authorized SNAP retailers across the United States and territories. Each record includes the store name, USDA store type, street address, city, state, ZIP, county, latitude, longitude and available incentive-program information.

The Actor turns the official USDA retailer-locator dataset into clean, high-volume business leads for payment processors, food distributors, CPG teams, retail intelligence, route planning and food-access analysis. It uses a public government data service and requires no USDA API key.

### What can you do with this Actor?

- Build nationwide prospect lists of grocery, supermarket, convenience and specialty-food retailers.
- Segment SNAP-authorized merchants by state, county, city, ZIP or store format.
- Support EBT, fintech, POS, payment-processing and merchant-services sales.
- Plan distributor territories and routes using normalized addresses and coordinates.
- Analyze independent retail coverage, food access and market density.
- Identify stores linked to a published nutrition-incentive program or grantee.

### Input

Every filter is optional. Empty input returns retailers in stable source order.

| Field | Type | Description |
| --- | --- | --- |
| `states` | string\[] | Two-letter states or territories such as `NY`, `CA`, `TX` or `PR`. |
| `counties` | string\[] | Exact USDA county names, commonly uppercase. |
| `cities` | string\[] | Exact city names. |
| `zipCodes` | string\[] | Five-digit ZIP codes. |
| `storeTypes` | string\[] | Exact source labels such as `Convenience Store`, `Supermarket` or `Super Store`. |
| `nameContains` | string | Case-insensitive business-name search. |
| `incentiveOnly` | boolean | Keep only records with a listed incentive program. |
| `maxResults` | integer | Maximum unique retailers, up to 500,000. |

Example for New York and New Jersey convenience-store leads:

```json
{
  "states": ["NY", "NJ"],
  "storeTypes": ["Convenience Store"],
  "maxResults": 25000
}
```

Example for named chains or markets:

```json
{
  "states": ["CA"],
  "nameContains": "Market",
  "maxResults": 10000
}
```

### Output

Each dataset item represents one USDA SNAP-authorized retailer location.

| Field | Meaning |
| --- | --- |
| `storeId` | USDA record identifier stored as text for safe matching. |
| `objectId` | Source-layer object identifier. |
| `storeName`, `storeType` | Merchant name and USDA retail category. |
| `streetAddress`, `addressLine2`, `address` | Original and normalized address forms. |
| `city`, `state`, `zipCode`, `zip4`, `county` | Geographic segmentation fields. |
| `latitude`, `longitude` | Published store coordinates. |
| `hasIncentiveProgram`, `incentiveProgram`, `granteeName` | Available incentive metadata. |
| `sourceUrl`, `scrapedAt` | Official lineage and export timestamp. |

```json
{
  "storeId": "1556583",
  "storeName": "Chris & Deebo Mini Mart Inc.",
  "storeType": "Convenience Store",
  "address": "199 Howard Ave, Brooklyn, NY, 11233",
  "city": "Brooklyn",
  "state": "NY",
  "zipCode": "11233",
  "county": "KINGS",
  "latitude": 40.681675,
  "longitude": -73.919609,
  "hasIncentiveProgram": false
}
```

### Commercial workflow tips

Start with state and store-type combinations that match your territory. Convenience stores, supermarkets, super stores, small groceries and specialty stores represent different sales motions, so preserve `storeType` in your CRM. Use `storeId` to deduplicate scheduled refreshes and coordinates for distance, density or route calculations.

The dataset indicates SNAP authorization, not that a store is currently open, interested in a service or suitable for a specific sales campaign. Validate high-value prospects before outreach. Contact details are not part of the public source; enrich business records lawfully through a separate process if needed.

### Scale and reliability

The Actor applies geography, type and name filters in the official query service, paginates in chunks supported by the source and writes results in batches. It can export the full currently published population in one run because the 500,000-item cap is higher than the source's present 260,000-plus records.

USDA updates retailer participation over time. Schedule recurring runs and compare by `storeId` to detect additions, removals or attribute changes.

### Integrations and API

Export results from Apify as JSON, JSONL, CSV, Excel, XML or RSS. Connect the Actor to schedules, webhooks, Make, Zapier, Google Sheets, databases, data warehouses or a custom ETL. It is callable from the REST API and official JavaScript and Python clients.

```bash
curl -X POST "https://api.apify.com/v2/acts/logiover~usda-snap-retailer-leads-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"states":["FL"],"storeTypes":["Supermarket"],"maxResults":10000}'
```

Apify MCP can make the Actor a structured merchant and food-retail discovery tool for AI agents.

### FAQ

**What is a SNAP-authorized retailer?** A location authorized by USDA to accept Supplemental Nutrition Assistance Program benefits.

**How many records are available?** USDA currently publishes more than 250,000 retailer locations; the count changes as the program changes.

**Does it need an API key?** No.

**Does it include phone numbers or emails?** No. Those fields are not in the official locator source.

**Can it export the full dataset?** Yes, the Actor cap is 500,000 and the current source is below that level.

**Why are some incentive fields blank?** Only participating records have published program information.

**Are coordinates always exact?** They are the coordinates published by USDA and should be verified for high-stakes use.

**Can I filter by chain?** Use `nameContains`; store naming can differ between locations.

**Can I monitor new locations?** Yes. Schedule runs and compare stable `storeId` values downstream.

**Is SNAP authorization a business endorsement?** No. It indicates program authorization only.

### Responsible use

This Actor is not affiliated with or endorsed by USDA or the Food and Nutrition Service. Use public records for lawful purposes, respect marketing and privacy rules, and verify critical merchant information against current authoritative sources.

### Changelog

#### 2026-08-04

- Initial USDA SNAP retailer and grocery-lead exporter.
- Added state, county, city, ZIP, store-type, name and incentive filters.
- Added full-dataset pagination, stable store-ID deduplication and normalized geolocation output.
- Validated address, category, county, coordinates and incentive fields against the live official service.

# Actor input Schema

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

Two-letter state or territory abbreviations, for example NY, CA, TX or PR. Leave empty for nationwide data.

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

Exact USDA county names, for example KINGS, LOS ANGELES or HARRIS.

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

Exact city names, for example Brooklyn, Houston or Miami.

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

Five-digit ZIP codes to include.

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

Exact USDA store types, such as Convenience Store, Supermarket or Super Store.

## `nameContains` (type: `string`):

Case-insensitive business-name filter, for example Target, Market or Pharmacy.

## `incentiveOnly` (type: `boolean`):

Only save retailers participating in a listed SNAP incentive program.

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

Maximum number of unique retailer records saved.

## Actor input object example

```json
{
  "states": [],
  "counties": [],
  "cities": [],
  "zipCodes": [],
  "storeTypes": [],
  "nameContains": "",
  "incentiveOnly": false,
  "maxResults": 200
}
```

# 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 = {
    "maxResults": 200
};

// Run the Actor and wait for it to finish
const run = await client.actor("logiover/usda-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 = { "maxResults": 200 }

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

```

## MCP server setup

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

```

## OpenAPI specification

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