# USDA National Farmers Market Directory Actor (`tehsnarf/usda-farmers-market-directory`) Actor

Scrapes the USDA Local Food Portal farmers market export into structured records with normalized market fields and source traceability.

- **URL**: https://apify.com/tehsnarf/usda-farmers-market-directory.md
- **Developed by:** [Chris Hoover](https://apify.com/tehsnarf) (community)
- **Categories:** Lead generation, Automation, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## 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.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.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/platform/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

## USDA National Farmers Market Directory Actor

Scrapes the USDA Local Food Portal farmers market export into structured records for directory enrichment, monitoring, and lead generation.

### What it does

- Queries the USDA public `download_by_directory` export for one or more states, cities, zip/coordinate searches, or raw portal URLs.
- Normalizes the most useful market fields into a consistent dataset.
- Keeps the original source URL and query URL for traceability.

### Important note

The actor uses the public export route and does not require an API key.

### Use cases

1. Build a clean farmers market directory for analysis or enrichment.
2. Monitor market metadata across states, cities, or zip codes.
3. Export public market listings into CSV-ready JSON for downstream workflows.

### Input

- `directory`: directory slug, default `farmersmarket`
- `startUrls`: optional USDA portal URLs
- `states`: state abbreviations to query
- `cities`: city/state lookups
- `zipCodes`: ZIP/radius lookups, with exact ZIP matching
- `coordinates`: x/y/radius lookups
- `maxItems`: maximum number of records to emit
- `delaySeconds`: pause between requests

### Output fields

| Field | Description |
|---|---|
| `listing_id` | USDA listing identifier |
| `market_name` | Farmers market name or listing title |
| `address` | Street address when present |
| `city` | City field from the source record |
| `state` | Two-letter state abbreviation |
| `state_name` | Full state or territory name when derived |
| `zipcode` | ZIP code |
| `latitude` | Latitude when available |
| `longitude` | Longitude when available |
| `operating_times` | Hours or operating schedule |
| `products` | Product offerings |
| `market_setting` | Market location/site details |
| `indoor_status` | Indoor/outdoor note |
| `special_production_methods` | USDA special production methods |
| `payment_types` | Accepted payment types |
| `nutrition_programs` | SNAP/WIC-style program fields when exposed |
| `phone_order` | Phone-order flag or note when exposed |
| `contact_name` | Public contact or manager name |
| `manager_name` | Manager name when separately exposed |
| `phone` | Public phone number |
| `email` | Public email address |
| `website` | Website or media website |
| `update_date` | Last update date |
| `directory` | Directory slug used for the query |
| `source_url` | Original API request URL |
| `query_url` | Canonical query URL used for the fetch |

### Pricing

Recommended at `$4.99 per 1,000 results`.

Example costs:

- 100 results: about `$0.50`
- 500 results: about `$2.50`
- 1,000 results: about `$4.99`
- 5,000 results: about `$24.95`

### Example output

Live budget-capped test run with `ACTOR_TEST_PAY_PER_EVENT=true ACTOR_MAX_TOTAL_CHARGE_USD=2`:

```json
[
  {
    "listing_id": "300002",
    "market_name": "Colorado Farm and Art Market",
    "address": "7350 Pine Creek Road, Colorado Springs, Colorado 80919",
    "city": "Colorado Springs",
    "state": "CO",
    "state_name": "COLORADO",
    "zipcode": "80919",
    "latitude": 38.937716,
    "longitude": -104.81468,
    "operating_times": null,
    "products": "Organic (USDA Certified)",
    "market_setting": "Private business parking lot;",
    "indoor_status": "No Indoor;",
    "special_production_methods": "Organic (USDA Certified)",
    "payment_types": "Debit card/Credit card",
    "nutrition_programs": "SNAP; Accept EBT at a central location",
    "phone_order": null,
    "contact_name": null,
    "manager_name": null,
    "phone": null,
    "email": null,
    "website": null,
    "update_date": "2020-08-03 13:44:04",
    "directory": "farmersmarket",
    "source_url": "https://www.usdalocalfoodportal.com/api/download_by_directory?directory=farmersmarket",
    "query_url": "https://www.usdalocalfoodportal.com/api/download_by_directory?directory=farmersmarket"
  },
  {
    "listing_id": "300003",
    "market_name": "Market in The Park",
    "address": "300 Conti, Mobile, Alabama 36602",
    "city": "Mobile",
    "state": "AL",
    "state_name": "ALABAMA",
    "zipcode": "36602",
    "latitude": 30.69035,
    "longitude": -88.045015,
    "operating_times": null,
    "products": "Organic (USDA Certified)",
    "market_setting": "Local government building grounds;",
    "indoor_status": "No Indoor;",
    "special_production_methods": "Organic (USDA Certified)",
    "payment_types": "Debit card/Credit card",
    "nutrition_programs": "Senior Farmers Market Nutrition Program",
    "phone_order": null,
    "contact_name": null,
    "manager_name": null,
    "phone": null,
    "email": null,
    "website": null,
    "update_date": "2020-08-03 09:33:29",
    "directory": "farmersmarket",
    "source_url": "https://www.usdalocalfoodportal.com/api/download_by_directory?directory=farmersmarket",
    "query_url": "https://www.usdalocalfoodportal.com/api/download_by_directory?directory=farmersmarket"
  }
]
````

### Notes

- The AMS directory page links to the USDA Local Food Portal API docs.
- The public export currently returns 7,148 farmers market records.
- Output fields are normalized from the source JSON, with best-effort alias handling for public listing metadata.

# Actor input Schema

## `directory` (type: `string`):

Directory slug to query.

## `startUrls` (type: `array`):

Optional USDA portal URLs for advanced use. You can pass the frontend directory page or the download endpoint.

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

State abbreviations or full state names to keep in the output.

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

Optional city/state query objects.

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

Optional ZIP/radius query objects. ZIP matching is exact; radius is best used with coordinates.

## `coordinates` (type: `array`):

Optional x/y/radius query objects.

## `maxItems` (type: `integer`):

Maximum number of records to emit.

## `delaySeconds` (type: `number`):

Polite pause between USDA API requests.

## Actor input object example

```json
{
  "directory": "farmersmarket",
  "maxItems": 10000,
  "delaySeconds": 1
}
```

# Actor output Schema

## `results` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("tehsnarf/usda-farmers-market-directory").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("tehsnarf/usda-farmers-market-directory").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 '{}' |
apify call tehsnarf/usda-farmers-market-directory --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=tehsnarf/usda-farmers-market-directory",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "USDA National Farmers Market Directory Actor",
        "description": "Scrapes the USDA Local Food Portal farmers market export into structured records with normalized market fields and source traceability.",
        "version": "0.0",
        "x-build-id": "DN0JNKBIbZZbpJ7DC"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/tehsnarf~usda-farmers-market-directory/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-tehsnarf-usda-farmers-market-directory",
                "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/tehsnarf~usda-farmers-market-directory/runs": {
            "post": {
                "operationId": "runs-sync-tehsnarf-usda-farmers-market-directory",
                "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/tehsnarf~usda-farmers-market-directory/run-sync": {
            "post": {
                "operationId": "run-sync-tehsnarf-usda-farmers-market-directory",
                "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",
                "properties": {
                    "directory": {
                        "title": "Directory",
                        "enum": [
                            "farmersmarket",
                            "agritourism",
                            "csa",
                            "foodhub",
                            "onfarmmarket"
                        ],
                        "type": "string",
                        "description": "Directory slug to query.",
                        "default": "farmersmarket"
                    },
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Optional USDA portal URLs for advanced use. You can pass the frontend directory page or the download endpoint.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "states": {
                        "title": "States",
                        "type": "array",
                        "description": "State abbreviations or full state names to keep in the output.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "cities": {
                        "title": "Cities",
                        "type": "array",
                        "description": "Optional city/state query objects.",
                        "items": {
                            "type": "object"
                        }
                    },
                    "zipCodes": {
                        "title": "ZIP codes",
                        "type": "array",
                        "description": "Optional ZIP/radius query objects. ZIP matching is exact; radius is best used with coordinates.",
                        "items": {
                            "type": "object"
                        }
                    },
                    "coordinates": {
                        "title": "Coordinates",
                        "type": "array",
                        "description": "Optional x/y/radius query objects.",
                        "items": {
                            "type": "object"
                        }
                    },
                    "maxItems": {
                        "title": "Max items",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum number of records to emit.",
                        "default": 10000
                    },
                    "delaySeconds": {
                        "title": "Delay between requests",
                        "minimum": 0,
                        "maximum": 10,
                        "type": "number",
                        "description": "Polite pause between USDA API requests.",
                        "default": 1
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
